home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / epistat.arc / CHISQR.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-08-18  |  2.1 KB  |  51 lines

  1. 1  REM                      CHI-SQUARE TEST
  2. 2  REM             Written by Tracy L. Gustafson, M.D.
  3. 3  REM            Round Rock, Texas. Version 2.0, 1982
  4. 5  DEF SEG=&H40
  5. 6  A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
  6. 7  DEF SEG: KEY OFF
  7. 10  CLEAR: DEFINT A,T: SCREEN 0,0: WIDTH 80: COLOR 7,0,4: DIM C(1,1),TR(1),TC(1)
  8. 15  CLS: PRINT TAB(28);"KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE"
  9. 16  PRINT TAB(28);"OPEN CHI-SQUARE TEST OPEN"
  10. 17  PRINT TAB(28);"SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD"
  11. 25  PRINT: PRINT: PRINT TAB(5);"Do you want to:  ": PRINT
  12. 30  PRINT TAB(20);"1.)  Evaluate a table of data.": PRINT
  13. 35  PRINT TAB(20);"2.)  Evaluate a known chi-square value.": PRINT: PRINT
  14. 36  PRINT TAB(25);: INPUT "Enter your choice:   ",ASUB
  15. 37  IF ABS(ASUB-1.5)>0.51 THEN BEEP: GOTO 36
  16. 40  CLS: PRINT: PRINT TAB(29);"CHI-SQUARE TEST": PRINT TAB(29);"THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN"
  17. 42  ON ASUB GOTO 60,45
  18. 45  PRINT: PRINT: PRINT: PRINT TAB(24);
  19. 50  INPUT "Enter chi-square value:   ",X: PRINT: PRINT TAB(22);
  20. 55  INPUT "Enter degrees of freedom:   ",DF: PRINT: CQ=0: GOTO 140
  21. 60  PRINT: PRINT TAB(10);: INPUT;"How many ROWS?  ",AR: PRINT TAB(45);
  22. 70  INPUT "How many COLUMNS?  ",AC
  23. 72  ERASE C,TR,TC: DIM C(AR,AC),TR(AR),TC(AC)
  24. 75  PRINT: PRINT "Enter your table values:"
  25. 80  IF AC<5 THEN AT=18 ELSE IF AC<9 THEN AT=9 ELSE AT=5
  26. 85  PRINT: TN=0: CQ=0: X=0
  27. 90  FOR AX=1 TO AR: FOR AY=1 TO AC
  28. 95  PRINT TAB(AY*AT);:INPUT;"",C(AX,AY): TR(AX)=TR(AX)+C(AX,AY)
  29. 100  NEXT: TN=TN+TR(AX): PRINT: PRINT: NEXT
  30. 105  FOR AY=1 TO AC: FOR AX=1 TO AR: TC(AY)=TC(AY)+C(AX,AY): NEXT: NEXT
  31. 110  F=0: IF AR=2 AND AC=2 THEN  F=0.5
  32. 115  FOR AX=1 TO AR: FOR AY=1 TO AC: E=TR(AX)*TC(AY)/TN: IF E<5 THEN CQ=1
  33. 120  Z=ABS(C(AX,AY)-E)-F: Z=Z*Z/E: X=X+Z
  34. 125  NEXT: NEXT
  35. 130  PRINT: PRINT TAB(20);"CHI-SQUARE = ";X
  36. 135  DF=(AC-1)*(AR-1)
  37. 140  IF X<31 OR DF>2 THEN J=DF/2-1: R=1 ELSE P=0: GOTO 170
  38. 145  FOR B=1 TO (DF/2-0.5): R=R*J: J=J-1: NEXT
  39. 150  IF DF MOD 2<>0 THEN  R=R*1.77245
  40. 155  S=1: I=1: K=((X/2)^(DF/2))*2/(EXP(X/2)*R*DF): D=DF+2
  41. 160  I=I*X/D: S=S+I: D=D+2: IF I>0 THEN 160
  42. 165  P=1-K*S
  43. 170  PLAY "O2 MB MS T120 L16 D-P8A-P8 L3 D-": PRINT: PRINT TAB(15);: COLOR 0,7
  44. 175  PRINT TAB(28);"p = ";:IF P<9.8E-08 THEN PRINT "< 10 (-8)"; ELSE PRINT P;
  45. 178  PRINT TAB(60): COLOR 7,0
  46. 180  IF CQ=1 THEN PRINT:PRINT:PRINT "The Chi-square test may not be applicable in this case---":PRINT TAB(24);"because the expected count in one or more cells is < 5."
  47. 185  PRINT: PRINT: PRINT TAB(10);
  48. 190  INPUT "Do you want to calculate another Chi-square? (Y or N)  ",A$
  49. 195  IF A$="y" OR A$="Y" THEN 10
  50. 200  END
  51.